УЧЕБНИК ПО АВТОУСТАНОВКЕ WINDOWS

       

Секция [Optional Components]


Бродя по темным закоулкам Technet и просматривая одним глазом DDK и SDK KIT для Win98, я наткнулся на описание загадочной секции, использующейся для установки через sysoc.inf. Я подозревал, что это штатная секция INF-файлов, просто не сильно афишировавшаяся. Итак, подробнее об этой секции.

Синтаксис:

[Optional Components]

Имя секции - ссылка на секцию в файле, которую надо исполнить для установки

.....

[Имя секции] - сама установочная секция

Данная секция служит для добавления устанавливаемого приложения в список оснастки "Установка/Удаление программ - Компоненты Windows". Секция не будет исполнена при попытке выполнить файл по правому щелчку мышью и выбору пункта "Установить". Ее также нельзя выполнить с помощью команды [Setupx.dll InstallHinfSection точка_входа]. В первом случае будет выполнятся секция [DefaultInstall], a во втором секция - указанная точкой входа. В обоих случаях параметры секции [Optional Components] будут игнорированны.

Насколько я понимаю, для обработки дополнительных инструкций секции [Optional Components] и существуют файлы sysoc.inf, ocgen.dll и sysocmgr.exe. В основном инструкции [Optional Components] служат для управления отображения компонентов в окне "Компоненты Windows".

Вернемся к синтаксису. В секцию установки могут быть добавлены следующие инструкции OC

OptionDesc=название дополнительного компонента

Tip=Подсказка в поле "Описание".

InstallDefault=0 | 1 ; Устанавливать компонент по умолчанию. 1=Да, 0=Нет.

IconIndex=Номер иконки для отображения

Parent= (имя секции\группы) группа или подгруппа в  "Компоненты Windows" (Пример: "Игры Windows" относятся к Parent=AccessUtil, аддоны 3dParty к Parent=NonMS)

Needs=имя секции, имя секции

Include=INF-файл, [INF-файл]



OptionDesc - это строковой параметр задающий название дополнительного компонента отображающегося в "Компоненты Windows". Может быть задан через Strings.

Tip - это текст подсказки в поле "Описание", ограничение - 255 символов.
Может быть задан через Strings.

IconIndex - это иконка, которая будет отображатся рядом с названием компонента. Привожу список иконок в оригинале:

0 Machine (base and display)

1 Integrated circuit chip

2 Display

3 Network wires

4 Windows flag

5 Mouse

6 Keyboard (3 keys)

7 Phone

8 Speaker

9 Hard disks

10 Comm connector

11 Diamond (default value)

12 Checked box

13 Un-checked box

14 Printer

15 Net card

16 Same as 0

17 Same as 0 w/ a sharing hand underneath

18 Unknown (question mark)

19 Atwork

20 Greyed check box

21 Dial-up networking

22 Direct cable connection

23 Briefcase

24 Exchange

25 Partial check

26 Accessories group

27 Multimedia group

28 Quick View

29 MSN

30 Calculator

31 Defrag

32 Generic document

33 DriveSpace

34 Solitaire

35 HyperTerminal

36 Object Packager

37 Paint

38 Screen saver

39 WordPad

40 Clipboard Viewer

41 Accessibility

42 Backup

43 Bitmap document

44 Character map

45 Mouse pointers

46 Net Watcher

47 Phone Dialer

48 System Monitor

49 Help book

50 Globe (international settings)

51 Audio compression

52 CD player

53 Media Player

54 Sound scheme

55 Video clip

56 Video compression

57 Volume control

58 Musica sound scheme

59 Jungle sound scheme

60 Robotz sound scheme

61 Utopia sound scheme

Parent - это инструкция, указывающая, является компонент подчиненным или родительским. Если параметр отсутствует, то менеджер дополнительных компонентов считает что компонент родительский. Если указать несуществующий родительский компонент (например, сам аддон), менеджер компонентов зависнет в попытке найти такого родителя. Для всех авторов аддонов должен быть только один вариант - Parent=NonMS (аддон 3dParty), чтобы не загромождать менеджер дополнительных компонентов (конечно, кроме особых случаев).

Needs указывает на секцию другого дополнительного компонента, от которого зависит устанваливаемый компонент. Секция должна быть в этом же файле, в противном случае

необходимо использовать Include.

Include присоединяет INF-файл стороннего компонента к текущей установке, что позволяет ссылатся на секции в присоединенном файле.



InstallDefault, скорее всего, достался в наследство от Win98. Я пробовал ставить аддон с этим параметром = 1 вместо Modes= 0,1,2,3. Аддон не поставился, но в списке

компонентов появился и позволил доустановить себя. У кого получится установить - сообщите. Пока могу посоветовать использовать Modes=0,1,2,3.

Пример:

[Optional Components]

InstallMyToys

InstallGames

[InstallMyToys]

OptionDesc=%Toys_DESC%

Tip=%Tomytoysys_TIP%

IconIndex=35 ;Иконка "Телефон"

Parent=MailApps

Needs=MSMAIL, MAPI, MicrosoftNetwork

Include=mos.inf, msmail.inf

CopyFiles=MyToysFiles

UpdateInis=MyToysLinks

AddReg=MyToysRegItems

   

[InstallOtherApps]

OptionDesc=%Other_DESC%

Tip=%Other_TIP%

IconIndex=4 ;windows mini icon for dialogs

CopyFiles=OtherFiles

UpdateInis=OtherLinks

AddReg=OtherRegItems

  

[Strings]

Toys_DESC="Почтовая утилита"

Toys_TIP="Дополнительные почтовые инструменты"

Other_DESC="Другие полезные утилиты"

Other_TIP="Калькулятор, очистка диска и монитор производительности"

  •   Дополнительно можно прочесть про файл ответов sysocmgr.exe (для установленной системы) здесь.


  •  К содержанию


    Содержание раздела